Method and system for trending media programs for a user

ABSTRACT

A client determines that a user is attempting to access media program recommendations. In response to the determination, the client attempts to collect media program recommendations to be presented to the user. Media program recommendations may be derived locally by the client, by the client and a multimedia device locally connected with the client, by the client and one or more additional devices, etc. In some embodiments, in response to receiving a query from the client, one or more recipient devices or servers identify media program recommendations in a plurality of trending categories. The media program recommendations may be selected based at least in part on EPG data and audience research and measurement data. The media program recommendations collected by the client are presented to the user for further exploration. The client may be one of mobile phones, tablet computers, etc.

PRIORITY CLAIM

This application claims benefit of Provisional Application Ser. No.61/823,316, filed May 14, 2013, the entire contents of which are herebyincorporated by reference as if fully set forth herein.

FIELD OF THE INVENTION

The present invention relates to techniques for trending media programsfor a user.

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

Programs and other content are broadcasted to multimedia devices, suchas digital video recorders (DVRs) and other set top boxes, over amultitude of channels. Traditionally, the different channels representedthe different frequency bands over which the programs were aired bylocal television stations. However, with the advent of digitaltelevision, televisions stations have largely switched to transmittingcontent using digitally processed and multiplexed signals, rather thananalog signals.

In order for a multimedia device to present content associated with aparticular television station, the multimedia device “tunes” to thechannel upon which the television station transmits content. Multimediadevices will typically have a hardware or software component, referredto as a “tuner”, which performs the task of tuning to particularchannels. In the case of analog transmission, the tuner may filterincoming signals to only those signals traveling within the frequencyband associated with a particular television station. In the case ofdigital television, the tuner demultiplexes the digital signal.

In some cases, television stations operate on virtual channels, channelsthat differ from the actual channel upon which the signal travels. Forexample, many digital television tuners use a virtual channel map (alsoreferred to as a virtual channel table) to associate virtual channels toactual channels. As a result, users are able to access channels byemploying an input device, such as a remote control, to instruct themultimedia device to tune to the channel associated with a particularvirtual channel number. The multimedia device then maps the virtualchannel number to an actual channel using the virtual channel map. As aresult, a television station may be identified within the digital streamusing one channel number, but branded for identification by users with adifferent channel number. For example, a television station identifiedby users as “Channel 8” may actually use channel 32 for the underlyingtransmission protocols and formats, such as ATSC, DVB, ISDB, etc.

In some cases, the content presented by each television station adheresto a particular theme or genre. For example, television stations mayspecialize in programs concerning local news, science fiction, sports,dramas, documentaries, public access, and so on. In other cases,television stations are associated with television networks from whichthe television station receives content. For example, a singletelevision network may be associated with multiple television stationsspread across a large area in order to reach a greater audience. As aresult, users tend to associate television stations not just with thechannel number used to access the television station's content, but alsowith the source or type of content that is aired by the televisionstation. Thus, television stations are often branded with a channel namethat serves many of the same purposes as a trademark, engraining thetelevision station into the minds of users and in some cases developinguser confidence in the content provided by a particular network, even ifthat content is presented by different television stations. Channelnames are often also trademarked by the television stations ortelevision networks to which they belong. Furthermore, televisionstations that broadcast content over the air are also subject to afederal requirement to identify themselves at periodic intervals. Thedesignation used for this purpose is often referred to as a “call sign”.Thus, television stations which have call signs will sometimes use theircall sign, or a variation thereof, as their channel name.

When the number of channels available to a multimedia device isrelatively small, users tend to be able to remember which channelnumbers are associated with the television stations and/or content thatthey want to view. However, the number of channels available tomultimedia devices has increased rapidly over the years, with manymultimedia devices presently receiving content over hundreds, if notthousands, of different channels. Consequently, many users find itdifficult to remember which channel numbers are associated with thetelevision stations or content that they wish to view. To furtherexacerbate matters, different television stations transmitting contentfrom the same television network often do not transmit the content usingthe same channel number. Thus, in one geographic area a particulartelevision network's program lineup may be accessed using one channelnumber, while in another geographic area the same program lineup may beaccessed using a different channel number. As a result, users movingfrom one geographical area to the other may not be familiar with whichchannel numbers map to channels playing content from a particulartelevision network. Since users who are not familiar with the channelnumbers are unable to tune directly to their desired channel, oftentimes such users will resort to “channel surfing” or tuning from channelto channel searching for their desired content. Channel surfing can be atedious and time consuming process, especially when the number ofchannels that the user needs to search through is very large.

To assist users with locating programming to view, many multimediadevices provide an electronic program guide (EPG) that displays menus ofscheduling information for broadcast programming. In some cases, EPGsallow users to navigate the scheduling information interactively,selecting and discovering dates and times when programs will be airingover the various channels. In addition, EPGs sometimes offer additionalinformation, such as content ratings, genre, and/or short descriptionsof each program. However, as the number of channels available tomultimedia devices increases, the number of entries within the EPGsincreases accordingly.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example environment upon which an embodiment ofthe present invention may be implemented;

FIG. 2 depicts aggregation of ARM data and editorial content into mediaprogram recommendations to a client;

FIG. 3 depicts example interaction between a program trendingapplication and one or more devices;

FIG. 4 depicts example data flows for generating media programrecommendations based on program trending data;

FIG. 5-12 illustrates example display pages;

FIG. 13 illustrates a computer system upon which an embodiment of theinvention may be implemented;

FIG. 14A through FIG. 14C illustrate example process flows.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Several features are described hereafter that can each be usedindependently of one another or with any combination of other features.However, any individual feature may not address any of the problemsdiscussed above or might only address one of the problems discussedabove. Some of the problems discussed above might not be fully addressedby any of the features described herein. Although headings are provided,information related to a particular heading, but not found in thesection having that heading, may also be found elsewhere in thespecification.

Example features can be found according to the following outline:

1.0 General Overview

2.0 Example Environment

3.0 ARM Data and Editorial Content

4.0 Aggregation of ARM Data and Editorial Content

5.0 Filtering

6.0 Example Interaction with One or More “Mind” Devices

7.0 Generating Media Program Recommendations

8.0 Example Algorithms

9.0 Media Program Recommendations in Different Time Zones

10.0 Example User Interface Pages

11.0 Example Process Flows

12.0 Hardware Overview

1.0 General Overview

Users often find it difficult to locate channels for purposes such astuning and obtaining scheduling information, especially when the numberof channels available to a user's multimedia device becomes very large.Thus, techniques for determining media program recommendation for mediaprograms that are of interest to individual users in various contextsare described herein.

These techniques can be used to help users easily discover timecontextual and personally relevant content from TV programs,video-on-demand (VOD), broadband content, etc., which can be consumedimmediately or at a later time.

Based on audience research and measurement data, these techniques can beused to rank media programs related or unrelated to season pass, onlinesubscription-based media content, private video content from friends andother users, etc. These techniques can be used to help users easilydiscover and aggregate content among different content sources.

From a client such as a tablet computer, a TiVo Central webpage, etc., auser can start a program trending application with an easy-to-useinterface for the user to discover diversified content and to startwatching directly or at a later time. These techniques combine multipledata sources (e.g., TiVo, third party, critics, etc.) and recommend, toa user, personally relevant content specific to the user.

In an embodiment, a method, comprises: receiving a plurality of mediaprogram recommendations in a plurality of trending categories, eachtrending category trending media programs having one or more commontrending characteristics, and each trending category in the plurality oftrending categories comprising one or more media program recommendationsin the plurality of media program recommendations; and displaying theplurality of trending categories with the plurality of media programrecommendations.

In an embodiment, the method further comprises: receiving a mediaprogram recommendation filter setting from a user; sending the mediaprogram recommendation filter setting to one or more sources thatgenerate the plurality of media program recommendations; wherein theplurality of media program recommendations is selected based at least inpart on the media program recommendation filter setting.

In an embodiment, method, further comprises: displaying a selectablecontrol, wherein the selectable control is configured to be invoked by auser to provide one or more comments related to a media program that isaccessed by the user through a media program recommendation in theplurality of media program recommendations.

In an embodiment, method, further comprises: displaying an indicatorwith a media program recommendation, wherein one or more non-third-partyoriginated information items are displayed for the media programrecommendation, and wherein the indicator indicates a third-partyoriginated information item for the media program recommendation.

In an embodiment, the method may be performed by a first device, andwherein the one or more local media sources are locally connected withthe first device. In an embodiment, the method is performed by a firstdevice being operated by a user, and wherein the user is able to selectto view a media program that corresponds to a media programrecommendation on either or both of the first device and one of the oneor more local media sources locally connected with the first device.

In an embodiment, one or more media programs corresponding to one ormore media program recommendations in at least one trending category inthe plurality of trending categories are from a remote service.

In an embodiment, one or more media programs corresponding to one ormore media program recommendations in at least one trending category inthe plurality of trending categories is from one or more local mediasources.

In an embodiment, the plurality of media program recommendations isspecifically selected for a specific user, and wherein a plurality ofdifferent media program recommendations is selected for a user differentfrom the specific user.

In an embodiment, the media program recommendation filter setting is tofilter media program recommendations in a specific trending categorytrending media programs in a specific trending category.

In an embodiment, the plurality of media program recommendationscomprises one or more media program recommendations for media programsaccessible through a channel line-up specific to a user.

In an embodiment, the plurality of media program recommendationscomprises one or more media program recommendations for media programsaccessible through an internet content provider.

In an embodiment, a method, comprises: receiving an electronic programlisting; generating, based at least in part on the electronic programlisting, a plurality of media program recommendations in a plurality oftrending categories, each trending category trending media programshaving one or more common trending characteristics, and each trendingcategory in the plurality of trending categories comprising one or moremedia program recommendations in the plurality of media programrecommendations; and displaying the plurality of trending categorieswith the plurality of media program recommendations.

In an embodiment, the electronic program listing is either from aservice or from one or more local media sources.

In an embodiment, the method further comprises: receiving a list ofrecorded media programs from one or more local media sources;generating, based on the list of recorded media programs, one or moremedia program recommendations in a trending category in the plurality oftrending categories.

In an embodiment, a method comprises: receiving a media programrecommendation request; in response to receiving the media programrecommendation request; identifying a plurality of media programrecommendations in a plurality of trending categories, the plurality ofmedia program recommendations being selected based at least in part onthe electronic program listing, each trending category trending mediaprograms belonging to a corresponding trending categories, and eachtrending category in the plurality of trending categories comprising oneor more media program recommendations in the plurality of media programrecommendations; and causing the plurality of trending categories withthe plurality of media program recommendations to be displayed at acomputing device to a user.

In an embodiment, the method is performed at least in part by a remoteservice to the computing device.

In an embodiment, the method is performed at least in part by one ormore local sources locally connected to the computing device.

In an embodiment, a multimedia device receives one or more charactersrepresenting at least part of a channel identifier. For example, channelidentifiers may include, channel name, channel number, and call sign. Inresponse, the multimedia device identifies one or more channels thathave a corresponding channel identifier containing a substring thatmatches the one or more characters. The multimedia device then displaysat least a portion of the one or more channels to the user. For example,the one or more channels may be presented in a scrollable list thatdisplays only a particular number of the one or more channels at a time.In response to determining that a particular channel from the list hasbeen selected, the multimedia device tunes to the selected channel.

In another context, users may want to locate scheduling information fora particular channel in an EPG. However, when the user's multimediadevice has access to a large number of channels; the EPG contains acorrespondingly large number of entries. Thus, the user may be forcedinto the time-consuming task of manually scrolling through the EPG tofind relevant information. Thus, in an embodiment, a multimedia deviceprovides a mechanism that allows users to specify search criteria thatis used to filter the EPG data. As a result, the user is presented witha reduced number of EPG entries to look through in order to findinformation for the particular channel.

In an embodiment, a multimedia device displays a first page of an EPG.The EPG contains channel information for a plurality of channels and thefirst page displays the channel information for a subset of theplurality of channels. In response to receiving user input specifyingone or more characters, the multimedia device identifies one or morechannels within the EPG that are associated with a channel identifierthat contains a substring matching the one or more characters. Themultimedia device displays a second page of the EPG, the second pagedisplaying channel information for a subset of the one or more channels.

Other possible embodiments include a non-transitory computer readablemedium that includes processor-executable instructions that enable aprocessing unit to implement one or more aspects of the disclosedmethods as well as a system or apparatus configured to implement one ormore aspects of the disclosed methods.

2.0 Example Environment

FIG. 1 illustrates an example environment upon which an embodiment ofthe present invention may be implemented. FIG. 1 shows a multimediadevice 100, a client device 106, a media program source 101, a displayunit 102-1, a program trending server 103, a network 104, and a programschedule source 105. Each of these components are presented to clarifythe functionalities described herein and may not be necessary toimplement the invention. Furthermore, components not shown in FIG. 1 mayalso be used to perform the functionalities described herein. Inaddition, functionalities described as performed by one component mayalso be performed by a different component. Also, although only one ofeach element is depicted within the embodiment of FIG. 1, a practicalenvironment may have many more, perhaps even hundreds or thousands, ofeach of the elements depicted within FIG. 1.

The multimedia device 100 includes any, some or all of: a networkinput/output 108-1, one or more tuner 109, a display subsystem, EPG data112-1, and a storage device 111-1, an audio/visual input, anaudio/visual output, channel usage statistics, wish lists, media programviewing preferences of one or more users, etc. The storage device 111-1may be used to store recorded programs and other data (e.g., EPG data112-1, channel usage statistics, etc.). In an embodiment, multimediadevice 100 represents any device capable of processing or presentingmultimedia content. For example, multimedia device 100 may represent aset top box, such as a DVR, thin client, etc. In an embodiment,multimedia device 100 is configured to receive content from mediaprogram source 101. For example, the audio/visual input of multimediadevice 100 may comprise a cable receiver, a radio receiver, or asatellite dish.

In some embodiments, a program trending application may be downloaded,installed as a part of the operating system, installed as an update,etc., onto the multimedia device 100. A program trending application maybe provided to any of a wide variety of platforms including mobilephones, tablet computers, desktop computers, e-readers, etc.

The program trending application may run on the multimedia device 100,present displays, obtain user input from a user locally at themultimedia device 100, based on media program recommendations receivedfrom a system such as the program trending server 103, etc. In someembodiments, the program trending application running on the multimediadevice 100 may cause displays to be presented at a different device(e.g., a client device such as 106, etc.), receive a user's input to thedifferent device from the different device, etc.

The client device 106 includes any, some or all of: a program trendingapplication 107, media program recommendations 113, an integrateddisplay unit 102-2, a network input/output 108-2, EPG data 112-2, aclient storage device 111-2, etc. In some embodiments, the clientstorage device 111-2 does not have the EPG data 112-2. The clientstorage device 111-2 may be used to store program trending application107 and other data (e.g., media program recommendations 113, EPG data112-2, etc.). In an embodiment, client device 106 represents any devicecapable of running the program trending application 107. The programtrending application 107 may be downloaded, installed as a part of theoperating system, installed as an update, etc., onto the client device106. In some embodiments, client device 106 can be configured to run asa client to a program trending application running on a different system(e.g., a multimedia device such as 100, etc.), present displays to auser, obtain user input from a user locally at the client device 106,forward the user input to the different system, generate informationbased on the user input, transmitting the information to the differentsystem, etc. In some embodiments, client device 106 is configured toprocess or present multimedia content. For example, client device 106can process or present a media program selected by a user of the clientdevice using the program trending application 107, etc. Client device106 may represent a mobile device, such as a tablet computer, e-reader,mobile communication device, thin client, etc. In an embodiment, clientdevice 106 is configured to receive content from multimedia device 100,media program source 101, etc.

Client device 106 and multimedia device 100 may be connected with anetwork connection 110. The network connection 110 may be, but is notlimited to, a local network connection, a wireless connection, awire-based connection, an ad hoc network connection established througha network discovery process, etc. For example, client device 106 andmultimedia device 100 may be a part of a local network at a specificlocation such as a room, a house, a building, a site, a shop, a park,etc. Access points, routers, etc., may be used to provide the networkconnection 110. In some embodiments, the multimedia content presented atthe client device 106 may be streamed by multimedia device 100 through anetwork connection to the client device 106. In some embodiments, someor all of EPG data (e.g., 112-2, etc.) and/or media programrecommendations (e.g., 113, etc.) may be streamed by multimedia device100 through a network connection to the client device 106.

One or both of client device 106 and multimedia device 100 may beconfigured with one or more network connections 130-4 to the network104. One or both of client device 106 and multimedia device 100 may beconfigured to receive one or more of EPG data, media program, mediaprogram recommendations, program trending data, etc., from other systemssuch as media program source 101, program schedule source 105, programtrending server 103, etc., via network connections 130-4.

Program trending data (e.g., 113, etc.) as described herein may bestored in any form, e.g., database, linked list, flat file, or any typeof data structure. EPG data (e.g., 112-1, 112-2, etc.) as describedherein may be stored in any form, e.g., database, linked list, flatfile, or any type of data structure.

In some embodiments, EPG data comprises programming information notspecific to a user (e.g., a user of multimedia device 100, a user ofclient device 106, etc.). Instead, EPG data may be specific to one ormore media program sources (e.g., 101, etc.), and may be general to someor all users in a content distribution network, a network work, anover-the-air broadcast region, etc. EPG data may contain programminginformation for channels that are not in a specific user's channellineup. The user's channel lineup refers to channels capable ofreceiving by the user through multimedia device 100, client device 106,media programs freely available to a user, media programs available to auser through the user's subscription to an online media program source,etc. In an embodiment, EPG data (e.g., 112-1, 112-2, etc.) containsmetadata representing channel information. For example, the metadata foreach channel may include a channel number, a channel name, a call sign,and a timeline of when programs air on the channel. Furthermore, the EPGdata may contain metadata specific to particular media programs, such asprogram title, content rating, actors, synopsis, producer, director,episode number (for programs that are episodic), reviews, etc.

In some embodiments, media program recommendations comprises mediaprogram recommendations specific to a user (e.g., a user of multimediadevice 100, a user of client device 106, etc.), a device (e.g.,multimedia device 100, client device 106, etc.), a household, an entity,etc. Media program recommendations for a specific user may correspond toonly media programs that are available in the specific user's channellineup. In some embodiments, media program recommendations are dividedinto a plurality of trending categories. Each trending categorycomprises media program recommendations selected specifically for theuser. The media program recommendations may contain metadata specific toparticular media programs corresponding to the media programrecommendations, such as program title, content rating, actors,synopsis, producer, director, episode number (for programs that areepisodic), reviews, etc. Example trending categories include but are notlimited to any of: “Favorite Channels,” “Recommended Shows,” “My Shows,”“Shared YouTube Videos,” “Sports on Live TV,” “New On Demand Movies,”etc.

In an embodiment, media program source 101 represents any source and anynumber of sources from which one or both of multimedia device 100 andclient device 106 may derive content. In a non-limiting example, mediaprogram source 101 may represent a local broadcaster that streams mediacontent to one or both of multimedia device 100 and client device 106over one or more channels or over the Internet. In another non-limitingexample, media program source 101 may represent a media subscriptionservice that streams media content to one or both of multimedia device100 and client device 106 over one or more channels or over theInternet. In one embodiment, media program source 101 transmits contentover one or more analog frequencies. However, in another embodiment,media program source 101 transmits content in the form of a digitalstream, using encodings such as MPEG-2, MPEG-4, etc.

In an embodiment, tuner 109 is any hardware or software component thatallows multimedia device 100 to select content streamed by media programsource 101 over a particular channel. In one embodiment, tuner 109changes to a particular channel by tuning to an analog frequencyassociated with the particular channel. In another embodiment, tuner 109changes to a particular channel by demultiplexing a digital streamprovided by media program source 101. For example, the digital streammay be multiplexed using techniques such as statistical multiplexing,code division multiplexing, time division multiplex, or any othermultiplexing techniques. Thus, depending on the embodiment, tuner 109may rely upon tags, codes, time markers, or other features of thedigital stream to select content associated with a particular channel.In an embodiment, after tuner 109 selects content from a particularchannel, the tuner 109 provides the content to display subsystem. Theremay be more than one tuner used by a device such as multimedia device100, etc.

In an embodiment, a display subsystem (e.g., in multimedia device 100,client device 106, etc.) as described herein may comprise anycombination of one or more hardware or software components thatprocesses and transfers content to a display unit (e.g., 102-1, 102-2,etc.). In some embodiments, the display subsystem is capable ofmodifying the content provided by another unit (e.g., a tuner such as109, etc.) before transferring the content to a display unit (e.g.,102-1, 102-2, etc.). For example, the display subsystem may insertnotifications, logos, advertisements, menu overlays, and other graphicalelements into the content provided by another unit. In otherembodiments, the graphical elements may be displayed instead of thecontent provided by another unit. For example, during a pause for acommercial break or to display a menu that covers the entire display ofa display unit (e.g., 102-1, 102-2, etc.), as opposed to being overlaidover the content. In still other embodiments, the content from anotherunit may be minimized to cover only part of the displayable area of adisplay unit (e.g., 102-1, 102-2, etc.) with graphical elements insertedinto the resulting free space. In an embodiment, the graphical elementsused by the display subsystem are stored on a storage device (e.g.,111-1, 111-2, etc.). However, in other embodiments, a display subsystemgenerates the graphical elements and/or displays from data (e.g., mediaprogram recommendations, EPG data, wish lists, media program viewingpreferences of one or more users, user permissions related to providingprivate information to a server such as the program trending server 103,stored graphic components, recorded media programs, etc.) stored on astorage device (e.g., 111-1, 111-2, etc.).

In an embodiment, audio/visual output (e.g., in multimedia device 100,client device 106, etc.) as described herein comprises any componentthat allows transfer of audio/visual data to display unit 102-1. Forexample, audio/visual output may represent an RCA connector, DVI,FireWire, Fiber-Optic, HDMI, DisplayPort, etc.

In an embodiment, a storage device (e.g., 111-1, 111-2, etc.) is anydevice capable of storing data. For example, the storage device mayrepresent a hard drive disk, solid state drive (SSD), random accessmemory (RAM), a flash drive, other storage devices, and combinationsthereof.

In an embodiment, a display unit (e.g., 102-1, 102-2, etc.) is anydevice capable of displaying multimedia content. For example, thedisplay unit may be a television set, monitor, etc.

In an embodiment, network 104 represents any combination of one or morelocal networks, wide area networks, internetworks, service providernetworks, etc. Data exchanged over network 104, may be transferred usingany number of network layer protocols, such as Internet Protocol(TCP/IP), Multiprotocol Label Switching (MPLS), Asynchronous TransferMode (ATM), Frame Relay, etc. Furthermore, in embodiments where network104 represents a combination of multiple networks, different networklayer protocols may be used at each of the underlying networks. In someembodiments, network 104 represents the Internet.

In an embodiment, one or both of multimedia device 100 and client device106 connect to network 104 through network input/output (e.g., 108-1,108-2, etc.). For example, the network input/output (e.g., 108-1, 108-2,etc.) may include one or more of a direct Ethernet connection, aUniversal Serial Bus (USB) port for a wired or wireless Ethernetadapter, a connection to a networking device, router, switch, accessbox, etc., that connects to the network 104, a local connection (e.g.,110, etc.), etc.

In an embodiment, program schedule source 105 represents any servercapable of providing EPG information to one or both of multimedia device100 and client device 106. In an embodiment, program schedule source 105periodically sends updates to one or both of multimedia device 100 andclient device 106 for incorporation into EPG data 112-1 and/or 112-2.For example, program schedule source 105 may, at end of each week, sendone or both of multimedia device 100 and client device 106 schedulinginformation related to the programs that will be aired during the nextweek or, optionally, send one or both of multimedia device 100 andclient device 106 a notification that an EPG update is available. In anembodiment, incorporation includes updating EPG data 112-1 and/or 112-2with new information or replacing EPG data 112-1 and/or 112-2 with newdata received from program schedule source 105. In other embodiments,rather than program schedule source 105 initiating periodic updates, oneor both of multimedia device 100 and client device 106 periodicallyrequests updates from the Program schedule source 105.

In some embodiments, one or both of multimedia device 100 and clientdevice 106, when receiving an update or independently of the receptionof an update from program schedule source 105, retrieve advertisementsor instructions to play advertisements in association with particularchannels or programs. These advertisements, in some embodiments, may beplaced by display subsystem into menus associated with those channels orprograms. In other embodiments, the advertisements may be added to thecontent provided from another unit when multimedia device 100 presentsthe associated channel or program.

In an embodiment, program trending server 103 is configured to collectprogram trending data and generate, based on the collected programtrending data, media program recommendations in a plurality of trendingcategories for any given user in a plurality of users. The programtrending data comprise past usage statistics, real-time or near-realtime trending indications, future trending predictions, real time and/ornon-real-time media program ranking information, etc. The programtrending data may be collected for one or more user populations from oneor more program trending data sources (e.g., a third party system thatprovides ranking information about live games; a media program critic'sfeed that provides comments about various media programs that have beenshown, are being shown, and/or will be shown; a trusted source thatprovides ranking information for sitcoms, movies, shows, etc.,multimedia devices that record their users' wish lists, media programviewing preferences, and operations, a social network that tracks itsusers' interest in media programs, a system that users share their mediaprograms, etc.). A user population as described herein may include butis not limited to any of: cable subscribers, satellite subscribers,over-the-air broadcast viewers, internet based media subscribers, socialnetwork users, etc. The program trending data may comprise a pluralityof individual program trending data portions, each of which is specificto a given user in a plurality of users. An individual program trendingdata portion for a first user is different from another individualprogram trending data portion for a second user. Thus, program trendingserver 103 can be configured to determine user-specific, different mediaprogram recommendations for different users based at least in part onrespective program trending data portions for the users.

The past usage statistics may comprise past information (e.g., one ormore hours old, one or more days old, one or more weeks old, etc.) abouta specific user's channel usage, a specific user's recorded programs,channel usage by a group of users, channel usage by users during aparticular time interval of day, week, weekday, weekend, a prime timeinterval of a given day, a non-prime time interval of a given day,during a first viewing of a particular program, a repeat viewing of aparticular time, etc., channel usage by users in a specific region,country, etc., internet based viewing statistics of one or more mediaprograms, internet based downloading statistics of one or more mediaprograms, channel usage by other users including but not limited to auser's friends, media programs that other users including but notlimited to a user's friends have watched, media programs that otherusers including but not limited to a user's friends have downloaded,media programs other users including a user's friends have madeavailable, etc.

The real-time or near-real time trending indications may compriseinformation about media programs that are of various degrees ofpopularity in real-time or in near-real-time (e.g., within a smallwindow such as a few seconds, a few minutes, a few hours, etc.). Forexample, the trending indications may indicate that a live broadcastabout a terrorist bombing at a major marathon event may be attracting alarge number of viewers in real time or in near-real time. The trendingindications may be derived from a representative audience's currentviewing activities, a representative audience's scheduled recordings forthe present time, a search engine's real-time search activities, asocial network's real-time messages, etc. The trending indications maybe determined based on past information. The program trending server 103may be granted permissions by some users of multimedia devices toreceive privacy protected information including but not limited to aviewer's viewing preferences, wish lists, viewing activities, recordedmedia programs, searching activities, messaging activities, seasonpasses, scheduled recordings, etc. The program trending server 103 maybe granted permissions by some users of other systems (e.g., searchengines, social networks, media subscription services, etc.) to receiveprivacy protected information including but not limited to a viewer'sviewing preferences, wish lists, viewing activities, searchingactivities, messaging activities, etc.

The trending predictions may comprise information about media programsthat are of various degrees of popularity in the future (e.g., one ormore hours from now, one or more days from now, next Tuesday, the comingweekend, one or more weeks, etc.). For example, the trending predictionsmay indicate that a media program first showing in a particular regionwill be attracting a large number of viewers because the media programhas been very popular in a different comparable region. The trendingpredictions may be derived from a representative audience's past,current, and planned viewing activities, a representative audience'sscheduled recordings for the past, present, and future time, a searchengine's past and present search activities, a social network's past andpresent messages, etc.

Program trending server 103 may collect program trending data related tovarious geographical areas or demographics. Program trending server 103may collect the program trending data from one or more program trendingdata sources including but not limited to multimedia devices, clientdevices, third party systems, media subscription servers, etc. In anembodiment, when a user selects a channel for viewing or recording,multimedia device 100 indicates the selection within channel usagestatistics. Examples of information that may be stored within channelusage statistics include channel number, channel name, call sign, theprogram playing at the time of selection, user profile data, the lengthof time the channel or program was viewed or scheduled for recording,timestamp, etc. In some embodiments, the information contained withinchannel usage statistics may be anonymized before or after beingtransferred to program trending server 103 in order to protect userprivacy. Program trending server 103 may perform polling with one ormore of the data sources. Additionally, alternatively and/or optionally,a data source may report out collected data to program trending server103.

In an embodiment, program trending server 103 is configured to receivefilter settings from users, and to apply a user's specific filtersettings when generating media program recommendations for the user.

3.0 Arm Data and Editorial Content

In some embodiments, program trending data as described herein mayinclude but is not limited to: audience research and measurement (ARM)data, editorial content, etc. In some embodiments, program trend server103 receives and stores 1) the ARM data that includes “day parts” (e.g.,time slots, time periods, time buckets, half hour buckets, etc.)information to provide popularity scores of media programs in a timeinterval distribution covering some or all of a given day, and 2)editorial content that augments the ARM data and allows injection of(e.g., rare, breaking story, one-off, etc.) content like a Presidentialdebate that may not be represented in the ARM data.

The ARM data may be collected from user interaction with a plurality ofmultimedia devices (e.g., DVRs, set-top boxes, etc.) and/or a pluralityof client devices (e.g., tablet computers, mobile devices, etc.).

In a non-limiting example embodiment, ARM data may be provided toprogram trending server 103 (e.g., as a text file, an XML file, etc.)that can be transformed into several data sets in an ARM database. Thesedata sets are used by program trending server 103 to find media programrecommendations and provide responses with individualized sets of mediaprogram recommendations to individual queries from users of multimediadevices and/or client devices. One of the data sets may be used to storepopularByDayPart data to indicate a popularity score of a media programat a day part (or a particular time duration such as half an hourbeginning at 7 am in the morning, an hour at prime time, 90 minutes inthe afternoon, other time intervals of a day, etc.) of a day of week atwhich the media program is shown. In some embodiments, additionalinformation such as a trending category (e.g., a slice, a media programtype, etc.) among a plurality of trending categories (e.g., slices,etc.) may be stored in the same data set or in a different data set inthe ARM database accessible by program trending server 103. An exampletrending category or slice may be “kids.” Other trending categories orslices may be movies, sports, etc. As used herein, a trending categoryor slice may refer to a user-perceivable aspect, characteristic, genre,type, etc., of media programs regardless of which channels or whichsources from which the media programs can be made available to a givenuser.

The editorial content can be provided by a system module or unit (which,for example, may be a part of the program trend server 103; operate inconjunction with the program trend server 103; etc.) that is configuredto accept editorial content input from one or more editors, critics,third parties, trusted sources, etc. The editorial content may be usedto augment popularity scores generated based on user interaction, andhelp promote content that may not be represented in the popularityscores. The editorial content may comprise information that identifies apromoted media program, a media program that is anticipated to bepopular, a (e.g., trusted) source that provides the editorial contentrelated to a media program that is promoted or anticipated to bepopular, etc.

Media programs in the ARM data and/or editorial content may be organizedin, or indicated with, trending categories/characteristics, slices,mixes, groups, genres, etc. Editorial content and/or ARM data asdescribed herein may be stored in one or more data sets of an ARMdatabase or a separate database. In some embodiments, at least a part ofeditorial content and/or ARM data may be stored externally in relationto program trending server 103. For example, program trending server 103may receive editorial content and/or ARM data on demand, via pollingfrom time to time, with asynchronous updates, etc.

4.0 Aggregation of Arm Data and Editorial Content

FIG. 2 depicts aggregation of ARM data and editorial content into mediaprogram recommendations to a client (e.g., a consumer device such asTiVo consumer device (TCD), a tuner-capable device such as a multimediadevice 100, etc.). One or more algorithms (denoted as “ARM”) may be usedto harvest or discover “popular” media programs (e.g., general, sports,popular TVs, kids, etc.). The popularity information of media programsrepresents ARM data that may be stored in a media service (e.g., aprogram trending server 103, a system including a program trendingserver 103, a part of a program trending server 103, etc.). Curated feedof a few additional shows (denoted as “TAP”) represents a part ofeditorial content that may also be stored in the service. Media programrecommendations (e.g., aggregated popular show information, etc.)available in a particular time period (e.g., hours, etc.) as determinedbased on the ARM data and/or the editorial content may be delivered tothe client. The client (e.g., a TiVo tuner-capable device, etc.) may beconfigured to store the received media program recommendations in localstorage (e.g., that of upcoming shows, a local database denoted as“Local Mind & DB”, etc.). The media program recommendations can be usedin user-driven application (denoted as “What to Watch Now via Encore,”etc.) such as a program trending application, etc.

In some embodiments, at least a part of editorial content may beprovided by an authoring team for the purpose of enhancing the ARM data(which may include but is not limited only to: data sets or data feedsfor trending categories such as “Popular on Now,” “Kids on Now,” etc.).Additional media program recommendations may be determined based on theARM data and/or the editorial content to support additional trendingcategories on a client if the number of the additional media programrecommendations is large enough (e.g., 20, etc.) to support a newtrending category for the user in the user's channel lineup. The programtrending application on the client may be implemented in a data-drivenprocessing model such that a new trending category of media programrecommendations can be relatively easily supported at the client (e.g.,display the new trending category to the user, user interaction relatedto the new trending category, etc.).

A program trending server 103 may be configured to be updated from timeto time by media program popularity information harvested for differenttrending categories from the ARM data. In an example, media programpopularity information for “Popular on Now” or “Popular TV” may be givento a program trending server 103 in 30 minute increments. In an example,media program popularity information for “Kids on Now” or “Kids” may begiven to a program trending server 103 in 15 minute increments.Popularity information for a specific media program may, but is notlimited to, be harvested based on the ARM data indicating the mostwatched shows from the previous week, etc.

A program trend application is configured to allow a user to overridethe default ordering of media program recommendations and/or trendingcategories. In some embodiments, at least some media programrecommendations may be ordered (e.g., by a default or user-specifiedorder of trending categories, popularity scores, a third party ranking,etc.) by program trending server 103 in a response to a query from aclient. Alternatively, at least some media program recommendations maybe ordered by a client that receives a response from program trendingserver 103 to a query from the client. The ordered media programrecommendations may be used to drive user interactions relativelyefficiently and responsively.

In some embodiments, additional information such as informationidentifying a user interface (UI) destination element “Popular TV,”etc., may be provided in a response with an information element (e.g.,one or more media program recommendations, a third party ranking, etc.)that is to be used for the UI destination element.

In some embodiments, emergency information, etc., may be provided in aresponse to cause or initiate a UI display that renders or conveys atleast a part of the emergency flash information, etc., to a user. Insome embodiments, emergency information, etc., may be provided to aclient who in response may be configured to remove one or moreinappropriate media program recommendations (e.g., negatively ranked,negatively thumbed, etc.) from a user display and/or from a localdatabase at the client.

A local database at a client may be used to provide media programrecommendations (e.g., recorded programs, etc.) based in data (e.g.,MyShows, My Favorite Channels, etc.) local to the client. In someembodiments, media program recommendations cached and stored in a localdata stored to a client may be used to support a program trendingapplication even when the application is not connected with programtrending server 103.

In some embodiments, media program recommendations and relatedinformation may be pre-fetched and cached on a client, program trendingserver 103, an intermediate device, etc., to support aggressiveperformance goals.

In some embodiments, in response to receiving a query from a client(e.g., a multimedia device 100 or a client device 106, program trendingserver 103 creates a union of information selected from one or more datasets, generate, based on results of the union, a single set (e.g., list,etc.) of media program recommendations, and returns the single set ofmedia program recommendations to the client as a response to the query.

A response provided by program trending server 103 may comprise mediaprogram recommendations to be displayed at a multimedia device (e.g.,100, etc.) or a client device (e.g., 106, etc.) as what-to-watch (WTW)popular shows. The response may comprise media program recommendationsin a PopularOnLiveTV category (e.g., slice, bucket, etc.) for a giventime. A query may specify that media program recommendations are to beretrieved for a particular time (e.g., now, two hours from now, at alater time of the same day, at a later time of a different day, at alater time of a different week, etc.). A response to the query returnsmedia program recommendations that are selected for media programs thatare available for viewing or recording by the user at the specifiedparticular time in the user's specific channel lineup (e.g., mediasubscriptions, cable channels, satellite channels, over-the-airbroadcasts, recorded programs on the user's multimedia device, etc.).

Popular shows in the media program recommendations may be based on themost popular Season Passes (SP) and the most popular Explicit Recordings(ER) in a given time of a given day of a given week based on the ARMdata. The popular shows can be heavily skewed toward prime-time shows.

A program trending application running on a multimedia device 100 or aclient device 106 may display media program recommendations for mediaprograms that are “On Now” (e.g., in the user's channel lineup, etc.). Aprogram trending application running on a multimedia device 100 or aclient device 106 may display media program recommendations for mediaprograms that can be watched at a specific later time (e.g., two hoursfrom now as the user may be commuting at the present time, etc.).

In some embodiments, a sufficient number of media programrecommendations are generated for different time durations including butnot limited to: non-prime time, prime time, etc. Different selectioncriteria and filtering techniques can be used to select popular showsfor different time durations. For example, the selection criteria fornon-prime time may permit inclusion of a media program with a relativelylow popularity score since there may be very few shows available for theuser. In contrast, the selection criteria for prime time may causeexclusion of a media program with a relatively high popularity scoresince there may be many shows available for the user.

A plurality of dayPart values may be defined to track popular mediaprograms in a plurality of time durations respectively corresponding tothe plurality of dayPart values. Example dayPart values include but arenot limited to: named values such as Early Morning 1, Early Morning 2,Morning Daytime 1, etc. Program trending server 103 may storeinformation identifying a plurality of (e.g., 5, 10, 20, 50, 200, etc.)popular media programs available in a given time duration.

The plurality of dayPart values may also be grouped or reduced to aplurality of broadName values by the ARM database. Each broadName valuemay correspond to one or more dayPart values.

Separate data sets in the ARM database can be used to store or includepopularity related information for media programs representing seasonpasses (SP) and media programs representing non-season passes (e.g.,explicit recordings (ER), etc.).

A program trending application running on a client (e.g., a multimediadevice 100, a client device 106, etc.) may receive, directly orindirectly from a program trending server 103, media programrecommendations for season passes organized or specified with theirrespective dayPart values or different time durations. A programtrending application running on a client (e.g., a multimedia device 100,a client device 106, etc.) may receive, directly or indirectly from aprogram trending server 103, media program recommendations fornon-season passes (e.g., a single explicit recording, a single explicitprogram, etc.) organized or specified with their respective dayPartvalues or different time durations. In some embodiments, the programtrending application can be configured to receive, directly orindirectly from a program trending server 103, media programrecommendations from “On Now” to a plurality of time durationsthroughout a day, a week, several weeks, etc.

The media program recommendations received by the program trendingapplication may be organized or specified with subsets (containing oneor more) of broadName values, broadName values only, dayPart valuesonly, a combination of broadName values and dayPart values. The mediaprogram recommendations received by the program trending application maybe organized or specified with values indicating different trendingcategories. In some embodiments, a subset of BroadName values maycomprise a subset of time durations for Morning, Daytime, Fringe, Prime,Late, etc.

In selecting media program recommendations, possibly different weightvalues may be assigned to different media programs, for example, tofavor prime-time shows, to favor season shows signed up with the mostnumbers of season passes, etc. Different weight values may also bedetermined for the same media program based in part on the total numberof shows available in each DayPart value which the media program fallsinto.

A limited number of (e.g., 1, 2, 3, etc.) queries issued by a client maycause media program recommendations to be received, directly orindirectly—e.g., a client device 106 obtains media programrecommendations from a multimedia device 100 that receives the mediaprogram recommendations from a program trending server 103, etc. —mediaprogram recommendations for a time period such as the next 24 hours, thenext 10 hours, the next hour and half, etc.

A user may have a specific channel lineup (including but not limited toonline media service descriptions, etc.). In some embodiments, programtrending server 103 is configured to filter media programrecommendations based on the user's specific channel lineup. Thus, anyof the media program recommendations shown to the user by the programtrending application can be selected (e.g., through tapping, etc.) bythe user for viewing or recording.

A use may be located in a specific time zone. In some embodiments,program trending server 103 is configured to convert times related tomedia program showings that are not appropriate for the specific timezone to times in the specific time zone, to select media programrecommendations based on times in the user's specific time zone at whichcorresponding media programs are being shown or are to be shown, toreturn the media program recommendations to a client with the user'sspecific time zone.

5.0 Filtering

In some embodiments, a device (e.g., program trending server, multimediadevice, an intermediate device, a media service, etc.) selects mediaprogram recommendations by querying program trending data (e.g., the ARMdatabase, etc.) with one or more filters (e.g., a feedContentFilter,etc.). Each of the filters may be used to define a type of media programrecommendation feed that maps to a title of the feed presented/displayedto a user by the program trending application running on a client.Example filters include but are not limited to any of: “newOnDemand,”“suggestions”, etc. A filter may comprise a plurality of data fieldsincluding but not limited to any of: availableWithinDays—If specified,results will be filtered to have only media program recommendationsavailable within a specified number of days. If unspecified, norestriction will be placed on time; frame of availability—If set to 0,only results available now will be returned; bodyId—If specified, onlyresults that are available to a client (e.g., the client who sends aquery, etc.) can be included; orCategoryId—This allows the client torequest feeds with specific categories such as “popular TV,” “favoritechannels,” “sports”, “my shows,” “kids”, etc.; accountId—If specified,this will filter out results that are not available to the account;partnerId—Used in conjunction with accountId to apply accountentitlements specific to a given partner (e.g., Amazon, NetFlix, Hulu,etc.); deviceType—Optional filter that will only return feeds for theparticular device type; supportedTransport—Optional filter that willonly return feeds with the specified transports; hdtv—Optional filterthat will only return results that are in the high definition TV (HDTV)quality; cc—Optional filter that will only return results that haveclosed captioning; titleLetterRangeStart—Optional character to filtertitles by, and can be used in conjunction with titleLetterRangeEnd;titleLetterRangeEnd—Optional character to filter titles by, can be usedin conjunction with titleLetterRangeStart; orPackageId—OptionalpackageIds to filter results by; orCategoryId—Optional categories tofilter results by; maxStartDateTime—Optional maximum start date and timeto filter results by; minEndDateTime—Optional minimum end date and timeto filter results by; orTvRating—Optional TV Rating(s) to filter resultsby; orderBy—Support sorting by mostPopular, newest, title, etc.; etc. Insome embodiments, media programs negatively thumbed, negatively ranked,etc., may be filtered out from media program recommendations for aspecific user. In some embodiments, the user (e.g., an adult, a mediaresearcher, etc.) may be permitted to override this filtering.

In some embodiments, a device (e.g., program trending server 103,multimedia device 100, etc.) other than a specific client (e.g., aclient device 106, etc.) performs filtering of media programrecommendations based on a specific user's channel lineup. In someembodiments, a specific client (e.g., a client device 106, etc.)performs filtering of media program recommendations based on a specificuser's channel lineup, for example, locally.

In some embodiments, some or all filter settings may be settable by auser of a client. For example, a program trending application asdescribed herein may present the current and/or default filter settingsto a user in one or more displays and allow the user to make changes,additions, deletions, etc., to the filter settings. In some embodiments,filter settings may be made implicitly for a user based on the user'sactivities (e.g., like Sitcom, action movies, etc., but not sports anddocumentaries, like certain channels but not others, recorded certainshows, etc.). A user's viewing preferences, wish lists, operations,viewing history, and other privacy related information may be sharedand/or monitored by a client with other devices after the user indicatespermissions to do so.

6.0 Example Interaction with One or More “Mind” Devices

FIG. 3 depicts example interaction between a program trendingapplication and one or more devices when a request or query is made(e.g., triggered by a program trending application at a client, when auser of a client tapping an application icon in a display screen tostart a program trending application, by a multimedia device 100, by aclient device 106, etc.) for media program recommendations generatedbased on program trending data. A client may choose to cache results ofsuch a query and only invoke the query periodically, from time to time,when a program trending application is active, etc. In some embodiments,the query may take local caching into account to determine what filtersettings or what query parameters should be specified for a completelisting of media program recommendations in a plurality of trendingcategories or for incremental changes of media program recommendationsin the plurality of trending categories. Other devices (e.g., programtrending server 103, multimedia device 100, etc.) other than the client(e.g., client device 106, etc.) can be configured to return enough datato satisfy the client until the next invocation of the query.

In a non-limiting example implementation, a program trending application(denoted as “WTW App”) on a client (which may be client device 106,etc.) invokes a mixMappingSearch call with parentEntryPoint set towhatToWatch and omitDisabledChildMixes set to true. The “whatToWatch”setting indicates to a recipient device that the client is interested inobtaining media program recommendations generated with program trendingdata. In some embodiments, the recipient device of this mixMappingSearchcall is an intermediate device (denoted as “middleMind”; which may bemultimedia device 100, a middle device other than multimedia device 100,etc.) between the client and program trending server 103 (denoted as“remoteMind”). In some embodiments, program trending server 103 may actas a “Mind” device (e.g., a “localMind” device, a “middleMind” device, a“remoteMind” device, etc.) that generates some or all media programrecommendations based on EPG data and program trending data to bepresented to a user of multimedia device 100 and/or to a user of clientdevice 106. In some embodiments, multimedia device 100 may act as a“Mind” device (e.g., a “localMind” device, a “middleMind” device, etc.)that generates some or all media program recommendations based on EPGdata and program trending data to be presented to a user of multimediadevice 100 and/or to a user of client device 106. In some embodiments,client device 106 may act as a “Mind” device (e.g., a “localMind”device, etc.) that generates some or all media program recommendationsbased on EPG data and program trending data to be presented to a user ofmultimedia device 100 and/or to a user of client device 106.

Other parameters, filter settings, etc., may be specified with the callto indicate a plurality of trending categories (e.g., default if notexplicitly specified, etc.) in which the client requests media programrecommendations, filtering for media programs that are available to theclient. One or more searchRequest objects may be used to return selectedmedia program recommendations for each requested trending category(e.g., feed, etc.) in the plurality of trending categories (e.g., “MyShows,” “Sports”, etc.). A parameter may be used to indicate whether acomplete set of media program recommendations filtered for a specificuser is to be returned or whether an incremental update comprisingremovals, additions, changes, etc., of media program recommendations isto be returned.

The “middleMind” device is configured to forward the request a query ina call to a “remoteMind” device if necessary. When these calls returnfrom the recipient devices to the calling devices, media programrecommendations in the plurality of trending categories are returned(e.g., from the “remoteMind” device to the “middleMind” device and thenfrom the “middleMind” device to the program trending application (or“WTW app”).

In some embodiments, for each media program recommendation, the programtrending application on a client determines a method of accessing a feedof a media program corresponding to that media program recommendation.For example, a media program recommendation may come with an“implementedBy” indicator. If the “implementedBy” indicator is eithernull or has a “remote” value, then the program trending applicationinvokes a searchRequestExecute call to the “localMind” device (e.g.,client device 106, multimedia device 100, etc.). The “localMind” deviceforwards to the middleMind device (e.g., multimedia device 100, anotherdevice other than multimedia device 100, etc.), which further forwardsthe call to the “remoteMind” device (e.g., program trending server 103,etc.). When the call successively returns to the program trendingapplication, a method of invoking a feed of the media program isprovided to the program trending application. Thus, when a user of theprogram trending application selects the media program recommendationfor the media program, the media program can be caused to be recorded orviewed by the user at either or both of the client (e.g., client device106, etc.) or another device (e.g., multimedia device 100, etc.).

If the “implementedBy” indicator for a media program recommendation hasa “local” value, then the program trending application invokessearchRequestExecute along the “implementedBy=local” to a localMinddevice. The “localMind” device sends the same call with an indicationthat “implementedBy” in the original request is set to “local” by theoriginating application to the “middleMind” device and/or further to the“remoteMind” device. Additional information may be obtained from the“middleMind” device and/or the “remoteMind” device in connection withthe media program. However, the feed of the media program may beimplemented locally when the user selects the media program for viewingor recording.

If the “implementedBy” indicator for a media program recommendation hasan “external” value, then the program trending application looks atspecific information that comes with the media program recommendationdetermine what code, procedure, call, etc., to invoke within the programtrending application in order to access the feed of the media program(e.g., from an external source, Hulu, NetFlix, etc.). If no code,procedure, call, etc., is found, the media program recommendation can beomitted from being presented to the user.

In some embodiments, a media program recommendation may be selected tocause a playback of a media program a feed of which is from a thirdparty media source such as Netflix, Hulu, etc. Additionally andoptionally, a media program recommendation may be selected to cause anoffer to be presented to a user to purchase a (e.g., broadband) mediaprogram; once the user purchased the media program, a feed of the mediaprogram is made available to the user from a (e.g., local, remote,internet-based, etc.) media source.

In some embodiments, a program trending application as described hereinmay present only HD content if the same media program is available in HDcontent and in other lower-quality (e.g., SD) content. In someembodiments, media programs that have thumbs-down ratings are stillshown. In some other embodiments, media programs that have thumbs-downratings are not shown. When a user selects a media program in progress,if the media program has a certain minimum length (e.g., 15 minutes forlive shows, 10 minutes for news, always shown for sports, etc.) of timeleft, the media program may be shown.

A call such as searchRequestExecute may be augmented by the caller(e.g., the program trending application, etc.) to include filtersettings (e.g., in a unifiedItemFilters data structure, etc.). In someembodiments, the caller can specify the maxStartTime, minEndTime, andtransportType(s) that are relevant for the device and time with whichthe call is made.

In some embodiments, more than one request may be sent to a recipientdevice. If a previous request is in cache, a later request may relay thecached request to the recipient device (e.g., the “remoteMind” device,etc.) so that the latter device can determine what updates relative tothe results provided in response to the previous request should beprovided with the current request. In some embodiments, at least a partof a response received from a requested device (e.g., the “remoteMind”device, etc.) can be cached at the client (e.g., client device 106,etc.), or at a different device (e.g., multimedia device 100, etc.)other than the client. In some embodiments, the “localMind” devicecaches results from the “remoteMind” device at discrete intervals up toa time period of 24 hours, etc. A searchRequestExecute call or operationmay be made with time window parameters (e.g.,unifiedItemFilters.maxEndTime, unifiedItemFilters.minStartTime, etc.) todefine a cache window. The “remoteMind” device can be configured toreturn a set of results that can be used within this time window.

In some embodiments, one or more devices (e.g., program trending server103, multimedia device 100, client device 106, etc.) may be configuredto receive external reviews and information about media programs fromlocal and/or remote sources. Such a device may query a local database,another device, a third party, etc., to obtain the external reviews andinformation from the third party. When (e.g., after, in response to,etc.) receiving an indication of selection of a media programrecommendation by a user, external reviews and information obtained fromthird party may be made accessible by the user. Examples of externalreviews and information about media programs may include but are notlimited only to any of: “Rotten Tomatoes” movie reviews, IMDB movie andTV show links, IMDB cast member links, excitement ratings and sportsdiscovery information from a sports discovery service such as Thuuz,social networking sites, trusted sources, critics feeds, editorialfeeds, media program measurement feeds, etc. A program trendingapplication as described herein may be configured to allow a user toselect, add or remove specific third parties, trusted sources, etc., toobtain external reviews and information. The program trendingapplication may be configured to combine the external reviews andinformation with a media program recommendation in one or more displayspresented to the user.

In some embodiments, instead of using one or more program trendingservers (e.g., 103, etc.) to generate media program recommendations in aplurality of trending categories, some or all of media programrecommendations can be generated locally at a client (e.g., multimediadevice 100, client device 106, etc.). The client can generate—based onuser's viewing preference, user interactions, a user's channel usage, auser's recorded media program history, a user's currently availablerecorded media programs, a user's scheduled recordings of future mediaprograms, etc.—media program recommendations using EPG data, ARM data,editorial content, etc., available to the client and the user's channellineup. For example, client device 106, which may be a tablet computer,can be configured to receive EPG data, ARM data, editorial content,etc., and generate media program recommendations to be presented to theuser at client device 106.

In some embodiments, some or all of media program recommendations can begenerated at an intermediate device other than a client (e.g.,multimedia device 100, client device 106, etc.) or a program trendingserver 103. The intermediate device can generate—based on user's viewingpreference, user interactions, a user's channel usage, a user's recordedmedia program history, a user's currently available recorded mediaprograms, a user's scheduled recordings of future media programs,etc.—media program recommendations using EPG data, ARM data, editorialcontent, etc., available to the intermediate device and the user'schannel lineup. The generated media program recommendations can beprovided to the client on demand, from time to time, with asynchronousupdates, etc. For example, client device 106, which may be a tabletcomputer, can be configured to receive media program recommendations,which are generated by multimedia device 100 using EPG data, ARM data,editorial content, etc., available to multimedia device 100. The mediaprogram recommendations generated by multimedia device 100 can bepresented to the user at client device 106 or multimedia device 100.

In some embodiments, some or all of media program recommendations can begenerated by a combination of a client, an intermediate device, aprogram trending server, etc. Each of these devices can generate—basedon at least a part of user's viewing preference, user interactions, auser's channel usage, a user's recorded media program history, a user'scurrently available recorded media programs, a user's scheduledrecordings of future media programs, etc.—media program recommendationsusing EPG data, ARM data, editorial content, etc., available to thatdevice and information about the user's channel lineup. The generatedmedia program recommendations from each device can be provided to theclient on demand, from time to time, with asynchronous updates, etc. Forexample, client device 106, which may be a tablet computer, can beconfigured to generate media program recommendations locally, receivemedia program recommendations, which are generated by multimedia device100 using EPG data, ARM data, editorial content, etc., available tomultimedia device 100, receive media program recommendations, which aregenerated by program trending server 103 using EPG data, ARM data,editorial content, etc. The media program recommendations generated bymultimedia device 100 can be presented to the user at client device 106or multimedia device 100.

7.0 Generating Media Program Recommendations

FIG. 4 depicts example data flows for generating media programrecommendations based on program trending data. For the purpose ofillustration only, the data flows are used to generate recommendationsor media program recommendations for a broadcast week N. Recommendationsor media program recommendations for a different time period (e.g., nextfive days, next day, etc.) can be similarly generated with similar dataflows.

In an example implementation, to determine media program recommendationsfor the broadcast week N, the data flows make use of the following ARMdata sets: USAGE Season pass loads till week N−1, which may be used fordetecting big risers (or media program with big rises) in popularity,detecting a new media program series in a season pass list, detecting aseason pass that has a large number of signups, etc.; frozen ratingsloads in the ARM data (e.g., frozen ratings determined based on userinteractions and usages, etc.) related to media programs till the end ofweek N−3 or till a time at which frozen ratings loads is complete;scheduling data (e.g., Tribune Program Guide, etc.) loaded for week N toN+2, which may be used to determine a recommendation list; etc.

Process 10 (denoted as “New SeasonPass Proc”) is configured to provideany, some, or all of the following functionality: 1) receive or queryusage weekly load (e.g., the ARM data, channel usage statistics, seasonpasses statistics, etc.) following a completion of weekly season passload (denoted as “PS11”); 2) read data from source for new season pass(denoted as “PS13”) and load into to temp table (denoted as “PS14”); 3)run validation on the temp table; 4) insert a row in the process locktable so that downstream process are aware of the data availability(denoted as “PS12”); 5) run in parallel with Processes 20, 30, 40 and50; 6) insert the temp data into Staging table; 7) release lock and endprocess; etc.

Process 20 (denoted as “SeasonPass Riser Proc”) is configured to provideany, some, or all of the following functionality: 1) receive or queryusage weekly load following a completion of weekly season pass load(denoted as “PS21”); 2) read data from source for popular season pass(denoted as “PS23”) and load into the staging table (denoted as “PS24”);3) run validation on the temp table; 4) insert a row in the process locktable so that downstream process are aware of the data availability(denoted as “PS22”); 5) run in parallel with Processes 10, 30, 40 and50; 6) release lock and end process; etc.

Process 30 (denoted as “Program Ranking”) is configured to provide any,some, or all of the following functionality: 1) receive or query ARMweekly load following a completion of ARM weekly data release (denotedas “PS31”); 2) read data from source for program ranking (denoted as“PS33”) and load into temp table (denoted as “PS34”); 3) run validationon the temp table; 4) insert a row in the process lock table so thatdownstream process are aware of the data availability (denoted as“PS32”); 5) run in parallel with Processes 10, 20, 40 and 50; 6) loadinto the staging table; 7) release lock and end process; etc.

Process 40 (denoted as “Network-Genre Ranking”) is configured to provideany, some, or all of the following functionality: 1) receive or querythe ARM weekly load and has to happen post completion of the ARM weeklydata release (denoted as “PS41”); 2) read data from source forNetwork-Genre ranking (denoted as “PS43”) and load data into temp table(denoted as “PS44”); 3) run validation on the temp table; 4) insert arow in the process lock table so that downstream process are aware ofthe data availability (denoted as “PS42”); 5) run in parallel withProcesses 10, 20, 30 and 50; 6) load into the staging table; 7) releaselock and end process; etc.

Process 50 (denoted as “Genre Ranking”) is configured to provide any,some, or all of the following functionality: 1) receive or query the ARMweekly load following a completion of the ARM weekly data release(denoted as “PS51”); 2) read data from source for Genre ranking (denotedas “PS53”) and load data into temp table (denoted as “PS54”); 3) runvalidation on the temp table; 4) insert a row in the process lock tableso that downstream process are aware of the data availability (denotedas “PS52”); 5) run in parallel with Processes 10, 20, 30 and 40; 6) loadinto the staging table; 7) release lock and end process, etc.

Process 60 (denoted as “Generate Recommendation”) is configured toprovide any, some, or all of the following functionality: 1) read datafrom stage table (denoted as “PS63”) and choose a date range (denoted as“PS61”), which may be greater than or equal to the range of data sets tobe delivered or used by a “Mind” device (e.g., a “localMind” device, a“remoteMind” device, etc.); 2) make data available in temp table; 3)apply filters of one or more rules that may have been configured; 4) runvalidation on the temp table; 5) acquire lock for a specific week in theprocess lock table so that data in the same week which is being updatedby Process 60 is not updated by any predecessor process or used by adownstream process; 6) perform re-ranking operation on data sets andload into a target table (denoted as “WTWN DATA” in a data flow denotedas “PS65”); 7) release lock and end process; etc.

Process 70 (denoted as “Data Delivery”) is configured to provide any,some, or all of the following functionality: 1) acquire lock on the weekin the process lock table so that the data for the same week to beupdated is not being updated by predecessor process; 2) read data fromthe target table (denoted as “PS73”) and choose a specified date range(denoted as “PS71”); 3) pipe the data to a file (e.g., “WTWN_<BW>.csv”,etc.) and format the file (denoted as “PS74”); 4) transfer (e.g., FTP)the file to a “Mind” device or server; 5) release lock and end process;etc.

Process 70 (denoted as “Data Delivery”) can be triggered through thetime based scheduling (e.g., “Time Scheduled”) in response to receivinga request from the “Mind” device or server. Process 60 (denoted as“Generate Recommendation”) can be triggered through time basedscheduling and can run more frequently than Process 70.

In the processes illustrated, a process lock table may be used to handleaccess conflicts and/or process contention, as most re-statements orupdates of data may involve truncation of partitions, and datadefinition language (DDL) operations.

In the example data flow diagram of FIG. 4, season pass (ranking, fact,source, etc.) tables may be updated, organized, etc., for each week.Similarly, in the example data flow diagram of FIG. 4, explicit program(rating, fact, source, etc.) tables may be updated, organized, etc., foreach day. Other ways, other time periods, etc., of updating, organizing,etc., can also be used for these tables.

Program schedule tables that store future schedules can also be used togenerate recommendations or media program recommendations for mediaprograms. Information generated for a recommended media program maycomprise a unique media program identifier, program airing date, day ofweek (e.g., MON, TUE, WED, THU, FRI, SAT, SUN), start hour (e.g.,21:00:00, 21:15:00, 21:30:00, 21:45:00, etc.), rank, source of rank,etc.

In some embodiments, media program recommendations in a plurality oftrending categories can be generated (e.g., based in part on the dataflow as illustrated, a different data flow, etc.). Media programrecommendations in different trending categories can be updated ondifferent time schedules and/or different time resolutions (e.g., everyhalf hour for the trending category “Popular On Now,” every quarter hourfor the trending category “Popular On Now—Kids”, etc.). A response to aquery for media program recommendations may cause media programrecommendations to be given for a length of time (e.g., 24 hours, 48hours, etc.).

8.0 Example Algorithms

In some embodiments, one or more algorithms can be used (e.g., at aprogram trending server, at a “remoteMind” device, etc.) to identifyrecommendations or media program recommendations from anonymous samples(e.g., to protect viewer privacy, etc.) in the ARM data collected from aselected audience.

For example, when a media program is determined as belonging to aseries, a season pass rank may be assigned to the media program. Newentries for season passes can be identified as the media programs thatdid not have a season pass rank, or alternatively did not have a highenough season pass rank, in a preceding time period (e.g., previousweek, etc.), but has been assigned a season pass rank, or alternativelygiven a high enough season pass rank (e.g., top 3000 season passes,etc.), in a current time period (e.g., the current week, etc.).

Big risers for season passes can be identified as the media programsthat have a rise in subscription over a certain threshold (e.g., apercentile threshold of 2%, 3%, etc.) in the current time period inrelation to a previous time period. Season pass percentile subscriptionmay be calculated based on the number of season passes set up each week.In an embodiment, a rise in season pass percentile subscription for weekN is equal to (previous week_percentile subscription−currentweek_percentile subscription) divided by previous week_percentilesubscription. This computation can be performed when the previous weekvalue is not zero or blank.

Media programs pertaining to a series or a season pass are notassociated with one particular day of the week or time of day. In weekN, if the name of a media program in EPG data matches that of a newentry for a season pass for any airing (e.g., any day, time, rerun flag(indicating first-run or repeat-run), etc.), the media program may begiven consideration as to whether it should be a media programrecommendation.

Certain media programs (e.g., service data, paid program or programming,to be announced, unidentified program or programming, local programming,etc.) can be excluded in computation that determines new entries forseason passes or big risers in season passes.

To identify top rated media programs, total Program ratings of a pasttime period (e.g., the latest week for which total program rations ofmedia programs are available, etc.) can be used to rate media programs.Up to a certain number of top rated media programs that become availablefor a time period (e.g., the upcoming week, etc.) can be determinedbased on the total program rating.

In some embodiments, ARM data including but not limited to media programranking data from one or more selected networks may be included in thedetermination for top rated media programs.

Media programs can be ranked per combination of day of week, start hourand rerun flag (e.g., first-run, second-run, etc.). For start hour, aday can be divided into a plurality of small time intervals (e.g., 48half hour buckets like 8:00:00, 8:30:00, 9:00:00, etc.). Media programswith start time within 10 minutes of a specific start hour can beconsidered for a start hour bucket with the specific start hour. Forexample, programs that start between 7:50 pm and 8:10 pm can be includedin the 8 pm start hour bucket.

Total Program ratings (e.g., for national market, etc.) of frozenratings of a past time period (e.g., last 52 weeks, etc.) can be used toidentify up to a certain number of top rated network-genres and/ortop-rated genres that become available for a time period (e.g., theupcoming week, etc.).

Program schedules (e.g., Kantar program schedule, etc.) comprisingprogram schedule information for relatively old dates may be consideredin identifying top rated network-genres and/or top-rated genres. Thestart date may be Monday of the first week and end date will be Sundayof the last week. Genre names may be determined from a program guideschedule (e.g., EPG data, Tribune program schedule, etc.).

In some embodiments, a further program schedule of one, two, or moreweeks for media programs provided by a plurality of media programsources can be generated as a part of identifying the presence ofrecommended media programs for which media program recommendations maybe provided to users. The future program schedule may be time-wisedivided into a plurality of time buckets (e.g., half hour buckets,etc.).

In some embodiments, to generate media program recommendations frommedia programs in week N airing, the following logic can be applied fordetermining top shows in each of trending category in week N airings(e.g., within specific time buckets in a future program schedule).

A media program to be considered for a specific half hour bucket has toeither start in that half hour or span over a certain amount of time(e.g., 25 minutes, 30 minutes, etc.) in the time duration for that halfhour bucket. For example a program that starts at 4 pm and is 2 hourlong, it can be included as a candidate for a media programrecommendation at 4 pm, 430 pm, 5 pm and 530 pm. In some embodiments, amedia program can be included for a specific time bucket with a specificstart hour only if at least 20 minutes—this is for illustrationpurposes; other time durations such as 15 minutes, 25 minutes, etc., maybe used in different implementations—of programming is still remainingfor that media program. For example, a media program that starts at 4 pmand ends at 5:15 pm may be included for the half hour buckets with starthours 4 pm and 430 pm, but it will not be included for the half hourbucket with a start hour 5 pm (since only 15 minutes of the program isremaining).

In some embodiments, for season pass new entries, only media programnames are matched (e.g., matching the name of a discovered season passnew entry with the name of a media program in week N airings, matchingthe name of a discovered season pass new entry with the name of a mediaprogram in the future program schedule, etc.), since rerun flag, day ofweek and time of day may not be available for season passes in theprogram schedule. In some embodiments, media program recommendationsthat are season pass new entries may be assigned the highest rank orderin (e.g., all, etc.) media program recommendations, and orderedinternally and/or in a display by current week (N) season pass rank. Insome embodiment, a first run flag may be set for some or all of theseason pass new entries.

In some embodiments, for season pass big risers, only media programnames are matched (e.g., matching the name of a discovered season passnew entry with the name of a media program in week N airings, matchingthe name of a discovered season pass big riser with the name of a mediaprogram in the future program schedule, etc.), since rerun flag, day ofweek and time of day is not available for season passes. In someembodiments, media program recommendations that are season pass bigrisers may be assigned the second highest order in media programrecommendations, and ordered internally and/or in a display bypercentile change in season pass rank in descending order.

In some embodiments, for top rated programs, a plurality of values suchas the following example four values may be matched between top ratedprograms of a previous time period (e.g., last week, etc.) and mediaprograms in the current time period (e.g., current week airings, etc.):day of week, start hour, rerun flag and media program name. In someembodiments, media program recommendations representing top ratedprograms may be assigned the third highest order in media programrecommendations, and ordered internally and/or in a display by the nextday program rating in descending order.

In some embodiments, for top rated network-genres, a plurality of valuessuch as the following example four values may be matched between toprated programs of a previous time period (e.g., last week, etc.) andmedia programs in the current time period (e.g., current week airings,etc.): day of week, start hour, rerun flag and network-genre. In someembodiments, media program recommendations representing top ratednetwork-genres may be assigned the fourth highest order in media programrecommendations, and ordered internally and/or in a display by the totalprogram rating in descending order.

In some embodiments, for top rated genres, a plurality of values such asthe following example four values may be matched between top ratedprograms of a previous time period (e.g., last week, etc.) and mediaprograms in the current time period (e.g., current week airings, etc.):day of week, start hour, rerun flag and genre. In some embodiments,media program recommendations representing top rated network-genres maybe assigned the fifth highest order in media program recommendations,and ordered internally and/or in a display by the total program ratingin descending order.

Media program recommendations identified by different algorithms and/ordifferent processes can be merged and duplicates can be removed. Rankingcan be regenerated such that new entries in season passes are rankedtopmost in order of current week season pass rank, followed by bigrisers in season passes in order of percentile change in season rank,followed by top rated programs from previous week in order of averagenext day rating, followed by programs belonging to top network-genres inorder of average total program rating, followed by programs belonging totop genres in order of average total program rating. Filtering can befurther applied to the media program recommendations for each of one ormore rule sets (e.g., to generate a sufficient number of media programrecommendations and/or to prevent too many media program recommendationsin each of the trending categories, etc.)

In some embodiments, a device (e.g., a program trending server, a “Mind”device which may itself be a program trending server, etc.) generates orreceives popularity reports (e.g., weekly “popularity” reports, etc.)based on the ARM data and/or editorial content. The popularity reportscomprise media program recommendations or candidates for media programrecommendations using one or more algorithms as described herein. Insome embodiments, these reports list the top-ranked popular upcomingshows for 30-minute segments throughout a current week (e.g., differentsegments such as 15-minute segments, etc., may be used for differenttrending categories such as kids shows, etc.). One type of popularityreports may comprise shows and rankings based on a specific region or atime zone (e.g., specific East Coast lineups, etc.). Popularity reportsfrom the East Coast lineups may be denoted as the East Coast PopularityReport (ECPR). Media program recommendations and/or candidates for mediaprogram recommendations for one or more different regions or time zonesmay be derived from popularity reports (e.g., the ECPR, etc.) for adifferent region or time zone (e.g., the East Coast, etc.).

9.0 Media Program Recommendations in Different Time Zones

The ECPR offers may not match program schedules for actual viewers inregions or time zones other than the East Coast. For example, viewers indifferent regions or time zones, in different networks, etc., may havedifferent channel lineups. In addition, national and/or local networksmay offer shows at different local times based on time zones and/orlocal schedules.

In order to match the local offerings specific to a user to the ECPR,the ECPR report may be treated as a local time zone report for eachlocal schedule. The local offers are compared with the ECPR offerswithin a configurable time zone offset window, such as (−2 hours, +1hour), etc. For instance, if the time zone offsets window is (−1 hour,+1 hour) and if the ECPR report recommends a show or a media program inthe 8 pm-8:30 pm slot, the media program in the ECPR report may bematched with all local offerings of the show or the media programbetween 7 pm and 9:30 pm. In some embodiments offers for the mediaprogram within the 8 pm-8:30 pm slot (e.g., the same time slot as in theECPR report for the media program, etc.) may be favor first, followed byany offer in the 7:30-8 pm and 8:30-9 pm slots (e.g., 30 minutes awayfrom the corresponding East Coast time for the media program, etc.),then followed by 7 pm-7:30 and 9 pm-9:30 slots (e.g., 60 minutes awayfrom the corresponding East Coast time for the media program, etc.).

Additionally, alternatively, optionally, a background process may beused to pre-match the ECPR reports to local offers in a number of timezones instead of waiting for the completion of the ECPR reports and thenextending the ECPR reports. This may be used to provide faster real-timelookup.

Some or all of media program recommendations in a plurality of trendingcategories available to a client can be presented to a user to allow theuser to quickly view and select from media programs that are availableto watch immediately or at a later time, to schedule a recordingimmediately or at a later time, etc.

A certain number of (e.g., 10, etc.) channels may be provided as mediaprogram recommendations in the trending category “Favorite Channels.”The favorite channels may be ordered (e.g., by the time and frequency ofviewing and/or recording by the user, etc.). The program trendingapplication can allow the user to add or remove a favorite channel,recorder the favorite channels, fix a static selection and/or order ofthe favorite channels, etc. In some embodiments, if the user does notmake the favorite channels static, the composition of favorite channelscan be updated from time to time (e.g., once per week, once every threedays, etc.). In some embodiments, thumbs (e.g., statistics of thumbs upand down, etc.) data for this category may be ignored. Media programrecommendations may be gathered as needed (e.g., in real time, innear-real time, etc.). In some embodiments, channel numbers may besorted in ascending channel order, from the lowest channel number to thehighest. If two channels are airing a show with the same Content ID,display an HD show before an SD show. In some embodiments, if there aretwo or more HD shows with the same Content ID, a tie-break rule may beapplied (e.g., display the one on the first channel encountered in aprogram guide, etc.).

A certain number of (e.g., 10, etc.) shows may be provided as mediaprogram recommendations in the trending category “Recommended Shows.”The recommended shows may be currently airing programs. A number offactors (e.g., liked by friends in a social network such as Facebook,liked by a sample of representative viewers, liked by audience in adifferent time zone that has aired the shows, etc.) may be used toselect shows recommended. In the event that there are not enoughcurrently airing friend recommended shows, the balance of the list canbe populated by media program recommendations in a different trendingcategory (e.g., “What's Popular,” etc.).

A certain number of (e.g., 10, etc.) shows may be provided as mediaprogram recommendations in the trending category “Liked by Friends.” Theshows may be currently airing programs that are derived from ratings(e.g., “Facebook Likes,” etc.) of friends in one or more social networksites. The shows may be prioritized in descending order beginning withthe highest rated show as designated by the number of “Likes”. Thecomposition of media program recommendations can be updated from time totime (e.g., once per week, every three days, etc.) based on informationreceived from the social network sites.

In some embodiments, when a media program recommendation is displayed inthe “Liked by Friends” category, a user may be presented up to a certainnumber of (e.g., three, etc.) names of friends who also like the mediaprogram corresponding to the media program recommendation. If more thanthe certain number of friends like the media program, the remainingnumber of friends who like the show should be displayed numerically(e.g., Mark, Jeff, Matt and seven others like this program, etc.).

A certain number of (e.g., 10, etc.) shows may be provided as mediaprogram recommendations in the trending category “Popular on Live TV.”These shows may have been selected or determined as the most popularshows and movies currently airing/available based on program trendingdata (e.g., season pass data captured by the ARM data, etc.). Forexample, the ARM data may identify the 20 most popular shows at anygiven time of the day, divided into 30-minute increments. These may becombined with editorially curated shows that are expected to be popular.Editorial items may include but are not limited any of: repeated events(live and recorded), award shows and sports programs, single event (liveand recorded), non-repeated popular TV live or recorded event such aspresidential debates, etc. Editorial items may also include but are notlimited any of: season premiere including but not limited to all pilotsand season premieres, changes in regular air times, etc. Editorial itemsmay include but are not limited any of: trending content Includes TVshows that are suddenly popular on the Internet—this is usuallyunpredictable, may not persist for a long time, and thus is difficult tocapture in the programmatic feeds generated based on past information.Media program recommendations may be gathered periodically (e.g., daily,weekly, etc.) with separate feeds on a more frequent basis (e.g., forevery half hour, etc.).

A certain number of (e.g., 10, 20, etc.) shows may be provided as mediaprogram recommendations in the trending category “My Shows.” These showsmay be from a list of recorded media programs stored at a client (e.g.,client device 106, etc.) or stored at a device connected with the client(e.g., multimedia device 100, etc.). A program trending application asdescribed herein may display up to a certain number (e.g., 20, etc.) ofthe most recent additions to the “My Shows” category. In someembodiments, this category include downloads but exclude suggestions. Insome embodiments, there is one-item limit per series in the category.Duplicate results from one or more wish lists may be eliminated (e.g.,separate wish lists specify two actors in the same show, etc.).

A certain number of (e.g., 10, etc.) shows may be provided as mediaprogram recommendations in the trending category “Shared YouTubeVideos.” These shows may be YouTube videos shared by friends viaFacebook. The user may have a linked Facebook account. The programtrending application at the client may be configured to allow the userto select a video from within the program trending application andplayback through an external display device (e.g., display device 102-1through multimedia device 100, etc.) or directly on the client (e.g.,display device 102-2 integrated with client device 106, etc.). The mediaprogram recommendations in the trending category “Shared YouTube Videos”may be updated from time to time (e.g., once per week, every three days,etc.)

A certain number of (e.g., 10, 25, etc.) shows may be provided as mediaprogram recommendations in the trending category “Sports on Live TV.”One or more devices that generate media program recommendations can beconfigured to scan/filter EPG data and a user's channel lineup for livesporting events. In an example, when the user clicks on a media programfor a particular sports event as represented by a media programrecommendation, a display device (e.g., 102-1, etc.) may display themedia program for the sports event based on a feed of the media programprovided by a tuner (e.g., in multimedia device 100, etc.). The mediaprogram recommendations can be ordered and/or grouped by live sports,other sports on TV, etc. This category may include live events andreruns of live events. Media program recommendations can be gathered asneeded. Live events may be displayed before non-live events for eachtype of sports events. Live events may be indicated to a user with livemarkings. Within each type of sports, games with the highest rating(e.g., from Thuuz, etc.), and then continue in descending order ofratings. Games without ratings may be displayed last in the category. Arating for an upcoming event may be displayed with a different look thanthat with which a rating of a live event may be displayed. Types ofsports may include but are not limited to any of: Football, Baseball,Basketball, Hockey, Auto Racing, Golf, Tennis, Soccer, and Others.“Soccer” events may further include the following genres: soccer,international soccer, football (soccer), etc.

A certain number of (e.g., 10, 25, etc.) shows may be provided as mediaprogram recommendations in the trending category “New On Demand Movies.”These shows may be available from broadband sources (e.g., Netflix,Amazon, etc.), video on demand or VOD where applicable, etc. The programtrending application at the client may be configured to allow the userto select a video from within the program trending application andplayback through an external display device (e.g., display device 102-1through multimedia device 100, etc.) or directly on the client (e.g.,display device 102-2 integrated with client device 106, etc.). In someembodiments, when the user selects a movie for viewing, the programtrending application should launch an appropriate application to causethe media program to be shown on a TV.

If a movie is available from multiple sources, the multiple sources maybe presented to a user in a priority order for the multiple sources. Asource may be preferred over another source. The movies in this categorycan also be ordered in a reverse chronological order, from most recentoriginal release date to the oldest original release date. Thenew-on-demand movies in this category may be updated on a relativelyshort time basis (e.g., daily, etc.).

The program trending application can be configured to display mediaprogram recommendations in available trending categories in a defaultsetting, and enable a user to customize displaying the availabletrending categories. For example, the program trending application canallow the user to turn on the “Sports on Live TV” category, but turn offthe “What's Popular” category. If a category has too few media programrecommendations or no media program recommendations, the programtrending application can skip displaying the category.

In an embodiment, when a user highlights a media program recommendationin a plurality of media program recommendations on a display, an iconrepresenting a link to a Rotten Tomatoes review of the movie can bedisplayed within an information pane. In an embodiment, when a user iswatching a movie, the program trending application can be configured toallow the user to access an additional option on an information displaythat displays icons representing links to Rotten Tomatoes reviews. If aselection of such a link is made by the user, one or more of the reviewsmay be displayed in a separate display page, a separate browser session,within the program trending application, etc.

An information pane or display as described herein may comprise a linkto IMDB for a particular movie or show displayed. When the user selectsthe link, an appropriate IMDB page can be displayed within the programtrending application, in a separate browser session, etc. A cast memberinformation pane or display may be displayed for a user for ahighlighted media program or for a selected media program. Theinformation pane or display may comprise a link to the appropriate IMDBpage for the particular cast member. When the user selects the link, anappropriate IMDB page can be displayed within the program trendingapplication, in a separate browser session, etc.

When a user has selected a media program that is available from Netflix,Amazon, or another internet based media service, the program trendingapplication can provide the user an option to choose to playback themedia program on an external display device (e.g., a TV throughmultimedia device 100, etc.) box or to choose to playback on anintegrated display device (e.g., an LCD display screen, etc.) of theclient. In some embodiments, if the user has selected to playback themedia program on the client, the program trending application can beconfigured to automatically launch a Netflix application or anotherapplication compatible with the other internet based media server and(e.g., immediately by passing an information display that is not a partof the media program, immediately without being further userintervention, etc.) start playing the selected media program. In someembodiments, if the user has selected a media program requiring apurchase from Amazon, the program trending application can be configuredto automatically launch a display (e.g., immediately without contentinformation display, immediately without further user intervention,etc.) to allow the user to make the purchase, and, once purchased, startplaying the selected media program. Once the user has completed watchingthe media program, the program trending application can be configured toclose the Netflix application or the other application. The client canbe configured to support downloading, pre-installing, running, etc.,Netflix and other applications, which operate in conjunction with theprogram trending operation, and media programs corresponding to selectedmedia program recommendations from third-party or non-third partysources.

In some embodiments, the program trending application assembles all ofthe responses of these calls into displays at the client. In someembodiments, the media program recommendations received from programtrending server 103 contain all necessary image and text data needed torender these displays.

10.0 Example User Interface Pages

A user of a client may start a program trending application (e.g., 107,etc.) in a variety of different ways on different platforms. Forexample, on a tablet computer, the user may tap on an icon (e.g., a“Watch Now” icon, etc.) representing the program trending application(e.g., from a tab bar on a display screen, etc.). The program trendingapplication may be configured to operate in a local mode (e.g.,interoperating with a multimedia device 100, etc.). The program trendingapplication may be configured to operate in a remote mode (e.g.,operating without a multimedia device 100, etc.). The program trendingapplication running on a client may be configure to use media programrecommendations cached locally, generated locally, or generated incombination with other devices. A user may be able to access a usermanual by directly interacting with one or more displays rendered by theprogram trending application (e.g., which may be configured to detectwhether the user is using the application the first time, etc.). Imagesmay be used to represent media program recommendations in displays.Different images may be used to represent a single media program. Forexample, when a Thuuz rating is available, an image representing asports event may have a different brightness from an image representingthe sports event if the Thuuz rating is unavailable.

FIG. 5 illustrates a first example page of a UI for trending mediaprograms according to an embodiment. In a non-limiting embodiment, thisexample page or any of other pages may be displayed on one or more of amobile device, a handheld computer, etc. In some embodiments, the pageof FIG. 5 may be rendered on a relatively large screen, whereas pages ofFIG. 9 and/or FIG. 10 may be rendered on relatively small screens.

The page depicted in FIG. 5 is in a tabular format, with rows comprisingrow cells (e.g., 504-1, etc.) in a plurality of columns (e.g., 502-1,502-2, 502-3, 502-4, etc.). Each row cell (e.g., 504-1, etc.) in acolumn (e.g., 502-3, etc.) represents an individual media programrecommendation (e.g., “Detroit Tigers at Washington Nationals,” etc.).Each column in the plurality of columns represents a trending category(e.g., “SPORTS”, etc.) in a plurality of trending categories (e.g.,“POPULAR TV,” “FAVORITE CHANNELS,” “SPORTS”, “MY SHOWS,” etc.) for themedia program recommendations. In other embodiments, this page may bedisplayed in formats other than a table. The user may scroll throughdifferent trending categories (e.g., by swiping left or right motions,by swiping up and down motions, etc.).

Media program recommendations (e.g., “Detroit Tigers at WashingtonNationals,” etc.) rendered in the page of FIG. 5 are selectable by auser operating or making use of the device that renders the page fordisplaying.

In some embodiments, new trending categories may be added by the programtrending application on displays when there are sufficient numbers ofmedia program recommendations are available or when a user requests todo so.

FIG. 6 illustrates a second example page of a UI for trending mediaprograms according to an embodiment. As illustrated, a program trendingapplication that causes this page to be rendered may be configured toallow a user to change display orderings of trending categories. Forexample, a user may change the “SPORTS” trending category from the thirdcategory in the page of FIG. 5 to the second category in the page ofFIG. 6. In some embodiments, the page of FIG. 6 may be rendered on arelatively large screen, whereas a page of FIG. 12 configured to allow auser for reordering trending categories may be rendered on a relativelysmall screen.

FIG. 7 illustrates a third example page of a UI for trending mediaprograms according to an embodiment. As illustrated, a program trendingapplication may be configured to display an information pane in responseto receiving an indication that a user selects a media programrecommendation (e.g., a sports event “Kansas City Royals at BaltimoreOrioles”, etc.). As illustrated, the information pane may includeselectable options for viewing (“Watch Now”), recording, etc. Theinformation pane may also include external reviews and information(e.g., an excitement ranking of “38” etc.), for example, from a thirdparty (e.g., Thuuz sports discovery service, etc.).

FIG. 8 illustrates a fourth example page of a UI for trending mediaprograms according to an embodiment. As illustrated, a program trendingapplication may be configured to display a filter setting panecomprising filter settings (e.g., various types of sports programs,etc.) for a trending category (e.g., “SPORTS”, etc.) in response toreceiving an indication that a user selects to edit the filter settingsfor the trending category. Based on user input related to the filtersettings, new filter settings can be used by the program trendingapplication and/or other devices to determine specific media programrecommendations in the trending category. For example, if the user isnot interested in baseball, any media program for baseball may beexcluded in media program recommendations in the trending category“SPORTS”. In some embodiments, the page of FIG. 9 may be rendered on arelatively large screen, whereas a page (for the purpose ofillustration, “crime” has been deselected, for example, by a user) ofFIG. 11 configured to allow a user to edit filter settings may berendered on a relatively small screen.

11.0 Example Process Flows

In various embodiments, one, two or more devices such as one or more ofthose illustrated may be singly or jointly implement at least some ofthe techniques as described herein.

FIG. 14A illustrates an example process flow. In some embodiments, asystem (e.g., a multimedia device 100, a client device 106, or a displayunit 102-1 of FIG. 1, etc.) comprising one or more computing devices(e.g., 1300 of FIG. 13) may perform this process flow.

In block 1402, the system receives a plurality of media programrecommendations in a plurality of trending categories, each trendingcategory trending media programs having one or more common trendingcharacteristics, and each trending category in the plurality of trendingcategories comprising one or more media program recommendations in theplurality of media program recommendations.

In block 1404, the system displays the plurality of trending categorieswith the plurality of media program recommendations.

In an embodiment, one or more media programs corresponding to one ormore media program recommendations in at least one trending category inthe plurality of trending categories are from a remote service.

In an embodiment, one or more media programs corresponding to one ormore media program recommendations in at least one trending category inthe plurality of trending categories is from one or more local mediasources.

In an embodiment, a method as described herein is performed by a firstdevice; the one or more local media sources are locally connected withthe first device.

In an embodiment, a method as described herein is performed by a firstdevice being operated by a user; the user is able to select to view amedia program that corresponds to a media program recommendation oneither or both of the first device and one of the one or more localmedia sources locally connected with the first device.

In an embodiment, the plurality of media program recommendations isspecifically selected for a specific user, and wherein a plurality ofdifferent media program recommendations is selected for a user differentfrom the specific user.

In an embodiment, the system is further configured to perform: receivinga media program recommendation filter setting from a user; sending themedia program recommendation filter setting to one or more sources thatgenerate the plurality of media program recommendations; the pluralityof media program recommendations is selected based at least in part onthe media program recommendation filter setting.

In an embodiment, the media program recommendation filter setting is tofilter media program recommendations in a specific trending categorytrending media programs in a specific trending category.

In an embodiment, the system is further configured to display aselectable control; the selectable control is configured to be invokedby a user to provide one or more comments related to a media programthat is accessed by the user through a media program recommendation inthe plurality of media program recommendations.

In an embodiment, the system is further configured to display anindicator with a media program recommendation; one or morenon-third-party originated information items are displayed for the mediaprogram recommendation; the indicator indicates a third-party originatedinformation item for the media program recommendation.

In an embodiment, the plurality of media program recommendationscomprises one or more media program recommendations for media programsaccessible through a channel line-up specific to a user.

In an embodiment, the plurality of media program recommendationscomprises one or more media program recommendations for media programsaccessible through an internet content provider.

FIG. 14B illustrates an example process flow. In some embodiments, asystem (e.g., a multimedia device 100, a client device 106, or a displayunit 102-1 of FIG. 1, etc.) comprising one or more computing devices(e.g., 1300 of FIG. 13) may perform this process flow.

In block 1412, the system receives an electronic program listing.

In block 1414, the system generates, based at least in part on theelectronic program listing, a plurality of media program recommendationsin a plurality of trending categories, each trending category trendingmedia programs having one or more common trending characteristics, andeach trending category in the plurality of trending categoriescomprising one or more media program recommendations in the plurality ofmedia program recommendations.

In block 1414, the system displays the plurality of trending categorieswith the plurality of media program recommendations.

In an embodiment, the electronic program listing is either from aservice or from one or more local media sources.

In an embodiment, the system is further configured to perform: receivinga list of recorded media programs from one or more local media sources;generating, based on the list of recorded media programs, one or moremedia program recommendations in an trending category in the pluralityof trending categories.

FIG. 14C illustrates an example process flow. In some embodiments, asystem (e.g., a media program source 101, a program trending server 103,a network 104, or a program schedule source 105 of FIG. 1, etc.)comprising one or more computing devices (e.g., 1300 of FIG. 13) mayperform this process flow.

In block 1422, the system receives a media program recommendationrequest.

In block 1424, the system identifies, in response to receiving the mediaprogram recommendation request, a plurality of media programrecommendations in a plurality of trending categories, the plurality ofmedia program recommendations being selected based at least in part onthe electronic program listing, each trending category trending mediaprograms having one or more common trending characteristics, and eachtrending category in the plurality of trending categories comprising oneor more media program recommendations in the plurality of media programrecommendations.

In block 1426, the system causes the plurality of trending categorieswith the plurality of media program recommendations to be displayed at acomputing device to a user.

In an embodiment, a method as described herein is performed at least inpart by a remote service to the computing device.

In an embodiment, a method as described herein is performed at least inpart by one or more local sources locally connected to the computingdevice.

Embodiments include an apparatus comprising a processor and configuredto perform any one of the foregoing methods. Embodiments include acomputer readable storage medium, storing software instructions, whichwhen executed by one or more processors cause performance of any one ofthe foregoing methods.

Note that, although separate embodiments are discussed herein, anycombination of embodiments and/or partial embodiments discussed hereinmay be combined to form further embodiments.

12.0 Hardware Overview

According to one embodiment, the techniques described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform thetechniques, or may include digital electronic devices such as one ormore application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the techniques. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the techniques.

For example, FIG. 13 is a block diagram that illustrates a computersystem 1300 upon which an embodiment of the invention may beimplemented. Computer system 1300 includes a bus 1302 or othercommunication mechanism for communicating information, and a hardwareprocessor 1304 coupled with bus 1302 for processing information.Hardware processor 1304 may be, for example, a general purposemicroprocessor.

Computer system 1300 also includes a main memory 1306, such as a randomaccess memory (RAM) or other dynamic storage device, coupled to bus 1302for storing information and instructions to be executed by processor1304. Main memory 1306 also may be used for storing temporary variablesor other intermediate information during execution of instructions to beexecuted by processor 1304. Such instructions, when stored innon-transitory storage media accessible to processor 1304, rendercomputer system 1300 into a special-purpose machine that is customizedto perform the operations specified in the instructions.

Computer system 1300 further includes a read only memory (ROM) 1308 orother static storage device coupled to bus 1302 for storing staticinformation and instructions for processor 1304. A storage device 1310,such as a magnetic disk, optical disk, or solid-state drive is providedand coupled to bus 1302 for storing information and instructions.

Computer system 1300 may be coupled via bus 1302 to a display 1312, suchas a cathode ray tube (CRT), LCD monitor, LED monitor, etc., fordisplaying information to a computer user. An input device 1314,including alphanumeric and other keys, is coupled to bus 1302 forcommunicating information and command selections to processor 1304.Another type of user input device is cursor control 1316, such as amouse, a trackball, or cursor direction keys for communicating directioninformation and command selections to processor 1304 and for controllingcursor movement on display 1312. This input device typically has twodegrees of freedom in two axes, a first axis (e.g., x) and a second axis(e.g., y), that allows the device to specify positions in a plane.

Computer system 1300 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic which in combination with the computer system causes orprograms computer system 1300 to be a special-purpose machine. Accordingto one embodiment, the techniques herein are performed by computersystem 1300 in response to processor 1304 executing one or moresequences of one or more instructions contained in main memory 1306.Such instructions may be read into main memory 1306 from another storagemedium, such as storage device 1310. Execution of the sequences ofinstructions contained in main memory 1306 causes processor 1304 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “storage media” as used herein refers to any non-transitorymedia that store data and/or instructions that cause a machine tooperate in a specific fashion. Such storage media may comprisenon-volatile media and/or volatile media. Non-volatile media includes,for example, optical disks, magnetic disks, or solid-state drives, suchas storage device 1310. Volatile media includes dynamic memory, such asmain memory 1306. Common forms of storage media include, for example, afloppy disk, a flexible disk, hard disk, solid-state drive, magnetictape, or any other magnetic data storage medium, a CD-ROM, any otheroptical data storage medium, any physical medium with patterns of holes,a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip orcartridge.

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire and fiber optics, including thewires that comprise bus 1302. Transmission media can also take the formof acoustic or light waves, such as those generated during radio-waveand infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to processor 1304 for execution. Forexample, the instructions may initially be carried on a magnetic disk orsolid-state drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 1300 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 1302. Bus 1302 carries the data tomain memory 1306, from which processor 1304 retrieves and executes theinstructions. The instructions received by main memory 1306 mayoptionally be stored on storage device 1310 either before or afterexecution by processor 1304.

Computer system 1300 also includes a communication interface 1318coupled to bus 1302. Communication interface 1318 provides a two-waydata communication coupling to a network link 1320 that is connected toa local network 1322. For example, communication interface 1318 may bean integrated services digital network (ISDN) card, cable modem,satellite modem, or a modem to provide a data communication connectionto a corresponding type of telephone line. As another example,communication interface 1318 may be a local area network (LAN) card toprovide a data communication connection to a compatible LAN. Wirelesslinks may also be implemented. In any such implementation, communicationinterface 1318 sends and receives electrical, electromagnetic or opticalsignals that carry digital data streams representing various types ofinformation.

Network link 1320 typically provides data communication through one ormore networks to other data devices. For example, network link 1320 mayprovide a connection through local network 1322 to a host computer 1324or to data equipment operated by an Internet Service Provider (ISP)1326. ISP 1326 in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 1328. Local network 1322 and Internet 1328 both useelectrical, electromagnetic or optical signals that carry digital datastreams. The signals through the various networks and the signals onnetwork link 1320 and through communication interface 1318, which carrythe digital data to and from computer system 1300, are example forms oftransmission media.

Computer system 1300 can send messages and receive data, includingprogram code, through the network(s), network link 1320 andcommunication interface 1318. In the Internet example, a server 1330might transmit a requested code for an application program throughInternet 1328, ISP 1326, local network 1322 and communication interface1318.

The received code may be executed by processor 1304 as it is received,and/or stored in storage device 1310, or other non-volatile storage forlater execution.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. The specification and drawings are,accordingly, to be regarded in an illustrative rather than a restrictivesense. The sole and exclusive indicator of the scope of the invention,and what is intended by the applicants to be the scope of the invention,is the literal and equivalent scope of the set of claims that issue fromthis application, in the specific form in which such claims issue,including any subsequent correction.

1-39. (canceled)
 40. A method for providing trending media assetrecommendations, the method comprising: identifying a plurality oftrending categories; identifying respective media assets associated witheach trending category of the plurality of trending categories that havenot been provided to a group of client devices; assigning a futurepopularity score to each of the identified media assets for each of thetrending categories; generating, in response to a query from a clientdevice in the group of client devices, a plurality of media assetrecommendations comprising at least an identified media asset having ahighest future popularity score for each of the plurality of trendingcategories; and causing to be displayed at least one trending categoryof the plurality of trending categories and the respective media assetrecommendations for the at least one trending category.
 41. The methodof claim 40, further comprising: accessing program trending data over anetwork connection; and obtaining a past popularity score for eachrespective media asset associated with each trending category of theplurality of trending categories; wherein each respective futurepopularity score is equal to the past popularity score.
 42. The methodof claim 40, further comprising collecting program trending data fromone or more user populations.
 43. The method of claim 42, wherein theprogram trending data comprises a plurality of individual programtrending data portions, and wherein each portion is specific to a givenuser or plurality of users.
 44. The method of claim 42, wherein theprogram trending data is collected from a data source selected from thegroup consisting of multimedia devices, client devices, third partysystems, and media subscriptions servers.
 45. The method of claim 40,wherein generating the plurality of media asset recommendations furthercomprises generating future trending predictions based on informationabout media assets that are of varying degrees of popularity in a pastor present audience.
 46. The method of claim 45, wherein the futuretrending predictions indicate the number of viewers attracted by eachrespective media asset.
 47. The method of claim 45, wherein the past orpresent audience comprises a representative audience in a second groupof client devices on which the media asset has already been viewed or isbeing viewed.
 48. The method of claim 45, wherein the future trendingpredictions are derived from a source selected from the group consistingof the current viewing activities of a representative audience, thescheduled recordings of a representative audience, real-time activity ofa search engine, and real-time messages on a social network.
 49. Themethod of claim 40, further comprising receiving filter settings from auser, and wherein generating the plurality of media assetrecommendations is further based on the received filter settings.
 50. Asystem for providing trending media asset recommendations, the systemcomprising: control circuitry configured to: identify a plurality oftrending categories; identify respective media assets associated witheach trending category of the plurality of trending categories that havenot been provided to a group of client devices; assign a futurepopularity score to each of the identified media assets for each of thetrending categories; and generate, in response to a query from a clientdevice in the group of client devices, a plurality of media assetrecommendations comprising at least an identified media asset having ahighest future popularity score for each of the plurality of trendingcategories; and output circuitry configured to cause to be displayed atleast one trending category of the plurality of trending categories andthe respective media asset recommendations in the at least on trendingcategory.
 51. The system of claim 50, wherein the control circuitry isfurther configured to: access program trending data over a networkconnection; and obtain a past popularity score for each respective mediaasset associated with each trending category of the plurality oftrending categories; wherein each respective future popularity score isequal to the past popularity score.
 52. The system of claim 50, whereinthe control circuitry is further configured to collect program trendingdata from one or more user populations.
 53. The system of claim 52,wherein the program trending data comprises a plurality of individualprogram trending data portions, and wherein each portion is specific toa given user or plurality of users.
 54. The system of claim 52, whereinthe program trending data is collected from a data source selected fromthe group consisting of multimedia devices, client devices, third partysystems, and media subscriptions servers.
 55. The system of claim 50,wherein the control circuitry configured to generate the plurality ofmedia asset recommendations is further configured to generate futuretrending predictions based on information about media assets that are ofvarying degrees of popularity in a past or present audience.
 56. Thesystem of claim 55, wherein the future trending predictions indicate thenumber of viewers attracted by each respective media asset.
 57. Thesystem of claim 55, wherein the past or present audience comprises arepresentative audience in a second group of client devices on which themedia asset has already been viewed or is being viewed.
 58. The systemof claim 55, wherein the future trending predictions are derived from asource selected from the group consisting of the current viewingactivities of a representative audience, the scheduled recordings of arepresentative audience, real-time activity of a search engine, andreal-time messages on a social network.
 59. The system of claim 50,wherein the control circuitry is further configured to receive filtersettings from a user, and wherein the control circuitry configured togenerate the plurality of media asset recommendations is furtherconfigured to do so based on the received filter settings.